home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / emacs-complete / fsf / emacs / lib-src / vcdiff < prev    next >
Text File  |  1993-12-02  |  1KB  |  94 lines

  1. #!/bin/sh
  2. #
  3. # Enhanced sccs diff utility for use with vc mode.
  4. # This version is more compatible with rcsdiff(1).
  5. #
  6. #    $Id: vcdiff,v 1.4 1993/12/03 09:29:18 eggert Exp $
  7. #
  8.  
  9. DIFF="diff"
  10. usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
  11.  
  12. PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts
  13.  
  14. echo=
  15. sid1=-r sid2=
  16.  
  17. for f
  18. do
  19.     case $f in
  20.     -*)
  21.         case $f in
  22.         --brief)
  23.             DIFF=cmp;;
  24.         -q)
  25.             echo=:;;
  26.         -r?*)
  27.             case $sid1 in
  28.             -r)
  29.                 sid1=$f
  30.                 ;;
  31.             *)
  32.                 case $sid2 in
  33.                 ?*) echo "$usage" >&2; exit 2 ;;
  34.                 esac
  35.                 sid2=$f
  36.                 ;;
  37.             esac
  38.             ;;
  39.         *)
  40.             options="$options $f"
  41.             ;;
  42.         esac
  43.         shift
  44.         ;;
  45.     *)
  46.         break
  47.         ;;
  48.     esac
  49. done
  50.  
  51. case $# in
  52. 0)
  53.     echo "$usage" >&2
  54.     exit 2
  55. esac
  56.  
  57.  
  58. rev1= rev2= status=0
  59. trap 'status=2; exit' 1 2 13 15
  60. trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
  61.  
  62. for f
  63. do
  64.     s=2
  65.  
  66.     case $f in
  67.     s.* | */s.*)
  68.         if
  69.             rev1=/tmp/geta$$
  70.             get -s -p -k $sid1 "$f" > $rev1 &&
  71.             case $sid2 in
  72.             '')
  73.                 workfile=`expr " /$f" : '.*/s.\(.*\)'`
  74.                 ;;
  75.             *)
  76.                 rev2=/tmp/getb$$
  77.                 get -s -p -k $sid2 "$f" > $rev2
  78.                 workfile=$rev2
  79.             esac
  80.         then
  81.             $echo $DIFF $options $sid1 $sid2 $workfile >&2
  82.             $DIFF $options $rev1 $workfile
  83.             s=$?
  84.         fi
  85.         ;;
  86.     *)
  87.         echo "$0: $f is not an SCCS file" >&2
  88.     esac
  89.  
  90.     if test $status -lt $s
  91.     then status=$s
  92.     fi
  93. done
  94.